@,Template for metadata table for applications0a ZDOC_TYPECDOC_DESCRC<DOC_EXECM>DOC_CLASSMBDOC_NEWLFDOC_OPENLGDOC_SINGLELHDOC_NOSHOWLIDOC_WRAPLJDOC_GOLKDOC_NAVLLALT_EXECMMPROPERTIESMQUSER_NOTESMU_NullFlags0Y 7Template for metadata table for applications (FPT file)@7Template for metadata table for applications (CDX file)$  4$$PISDELTYPEOPENNEWDOC_DESCR `  doc_open?`doc_new?<`  doc_descr?? b  doc_type "`  DELETED()?7Template for application-specific generated header file * **_APP.H ** * header file holding framework-generated project data for * ** Project * the following is for your reference/identification -- * the application object and splash receive this information into * their cCaption property, and this #DEFINE does not provide it: * #DEFINE APP_NAME "**" #DEFINE APP_SUPERCLASS "_application" * developer can change this one * to use a different global reference * if desired -- a BUILD ALL/RECOMPILE * is required afterwards to synch up * references in generated menus and PRGs. #DEFINE APP_GLOBAL goApp * This one indicates the member name of the object * placed on "framework-enabled" forms: #DEFINE APP_MEDIATOR_NAME "app_mediator" * developer can change these to a different subclass * of APP_SUPERCLASS if desired: #DEFINE APP_CLASSLIB "**_APP.VCX" #DEFINE APP_CLASSNAME "**" * the splash class can be anything you want: #DEFINE APP_SPLASHCLASS "**" #DEFINE APP_SPLASHCLASSLIB "**_APP.VCX" * how long should the splash screen stay up if * no key is pressed and if the app object initializes * too quickly? (this figure is in seconds) #DEFINE APP_SPLASHDELAY 3 * the following are localization strings for the wrapper program: #DEFINE APP_CANNOT_RUN_LOC "Application cannot run." #DEFINE APP_ALREADY_RUNNING_LOC "Application already running." #DEFINE APP_WRONG_SUPERCLASS_LOC "Sorry -- this application must instantiate "+ CHR(13)+ ; "an object that descends from "+APP_SUPERCLASS+"." * this is a localization string for the menus: #DEFINE APP_FEATURE_NOT_AVAILABLE_LOC "Feature not available." * this one is a hook in the startup program, not * needed by the framework: * #DEFINE APP_INITIALIZE ** * strictly speaking the 6.0 framework does not * need the following, but the 5.0 template apps may, * if they are adapted for the new framework: * #DEFINE APP_CD ** * #DEFINE APP_PATH ** 6Template for application-specific generated CONFIG.FPW)* CONFIG.FPW for **.PJX ** * This file should contain the settings * appropriate to your project * and be added in to the project/exe * or installed in the EXE directory * It overrides registry settings * You can use the -C switch or FOXPROWCFG environmental * variables to point to a config file by name, and * and the FOXPROSWX variable also handles -C among * the other switches. SCREEN = OFF TITLE = ** * Change this to suit: * TMPFILES = ** * or set EDITWORK,SORTWORK,PROGWORK individually * note: these should never be set in a CONFIG.FPW * built into your EXE! See above for ways of pointing * to a CONFIG file. * To specify a startup program, possibly temporarily, * on the way into your app: _STARTUP = "" * to eliminate load time: _BROWSER = "" _SPELLCHK = "" _GENMENU = "" _GENGRAPH = "" _GENXTAB = "" _COVERAGE = "" _SCCTEXT = "" _CONVERTER = "" _TRANSPORTER = "" _BUILDER = "" _WIZARD = "" * other special CONFIG.FPW settings you may wish to change: * (these are the defaults) MVCOUNT = 1025 OUTSHOW = ON * Set other global settings here if you like, for example: RESOURCE = OFF _THROTTLE = 0 * See the application object's SetDataSessionSets() method * for some additional settings you * may like to use in your config file. * The following are not the default settings, * (and ordinarily will be taken care of in the * Load of private-session forms and formsets): TALK = OFF MULTILOCKS = ON EXCLUSIVE = OFF SAFETY = OFF 7Template for application-specific project hook log file* **_APP.TXT ** * Projecthook log file for: * **.PJX * This file holds date-time stamped log entries for automated * alterations made to this framework-enabled project. ^Template for application-object instantiating PRG, used as Main program for generated projects * **_APP.PRG ** * Framework-generated application startup program * for ** Project #INCLUDE [..\**_APP.H] IF TYPE([APP_GLOBAL.Class]) = "C" AND ; UPPER(APP_GLOBAL.Class) == UPPER(APP_CLASSNAME) MESSAGEBOX(APP_ALREADY_RUNNING_LOC,48, ; APP_GLOBAL.cCaption ) IF VARTYPE(APP_GLOBAL.oFrame) = "O" APP_GLOBAL.oFrame.Show() ENDIF RETURN ENDIF RELEASE APP_GLOBAL PUBLIC APP_GLOBAL LOCAL lcLastSetTalk, llAppRan, lnSeconds, loSplash LOCAL ARRAY laCheck[1] lcLastSetTalk=SET("TALK") loSplash = .NULL. SET TALK OFF #IFDEF APP_SPLASHCLASS IF NOT EMPTY(APP_SPLASHCLASS) loSplash = NEWOBJECT(APP_SPLASHCLASS, APP_SPLASHCLASSLIB) IF VARTYPE(loSplash) = "O" lnSeconds = SECONDS() loSplash.Show() ENDIF ENDIF #ENDIF APP_GLOBAL = NEWOBJECT(APP_CLASSNAME, APP_CLASSLIB) IF VARTYPE(APP_GLOBAL) = "O" ; AND ACLASS(laCheck,APP_GLOBAL) > 0 AND ; ASCAN(laCheck,UPPER(APP_SUPERCLASS)) > 0 APP_GLOBAL.cReference =[APP_GLOBAL] APP_GLOBAL.cFormMediatorName = APP_MEDIATOR_NAME #IFDEF APP_CD APP_CD #ENDIF #IFDEF APP_PATH APP_PATH #ENDIF #IFDEF APP_INITIALIZE APP_INITIALIZE #ENDIF IF VARTYPE(loSplash) = "O" IF SECONDS() < lnSeconds + APP_SPLASHDELAY =INKEY(APP_SPLASHDELAY-(SECONDS()-lnSeconds),"MH") ENDIF loSplash.Release() loSplash = .NULL. ENDIF RELEASE laCheck, loSplash, lnSeconds IF NOT APP_GLOBAL.Show() IF TYPE([APP_GLOBAL.Name]) = "C" MESSAGEBOX(APP_CANNOT_RUN_LOC,16, ; APP_GLOBAL.cCaption ) APP_GLOBAL.Release() ELSE MESSAGEBOX(APP_CANNOT_RUN_LOC,16) ENDIF ELSE llAppRan = .T. ENDIF IF TYPE([APP_GLOBAL.lReadEvents]) = "L" IF APP_GLOBAL.lReadEvents * the Release() method was not used * but we've somehow gotten out of READ EVENTS... APP_GLOBAL.Release() ENDIF ELSE RELEASE APP_GLOBAL ENDIF ELSE MESSAGEBOX(APP_WRONG_SUPERCLASS_LOC,16) RELEASE APP_GLOBAL ENDIF IF lcLastSetTalk=="ON" SET TALK ON ELSE SET TALK OFF ENDIF IF TYPE([APP_GLOBAL]) = "O" * non-read events app RETURN APP_GLOBAL ELSE RETURN llAppRan ENDIF